/**
 * 资源信息
 * @author hupeng
 * @datetime 2021-3-12 17:32
 */

const Java2Mysql = {
  Boolean: 'bit',
  Integer: 'int(10)',
  Long: 'bigint(20)',
  String: 'varchar(255)',
  Date: 'datetime',
  BigDecimal: 'decimal(10,2)'
}

function getTableOtherName(tableName) {
  const arr = tableName.split('_');
  let str = '';
  arr.forEach(item => {
    str += item[0].toUpperCase();
  });
  return str;
}

/**
 * 下划线转换驼峰
 * @param name
 * @returns {*}
 */
function toHump(name) {
  return name.replace(/\_(\w)/g, function (all, letter) {
    return letter.toUpperCase();
  });
}

/**
 * 驼峰转换下划线
 * @param name
 * @returns {string}
 */
function toLine(name) {
  return name.replace(/([A-Z])/g, "_$1").toLowerCase();
}

/**
 * 首字母大写
 * @param str
 * @returns {string}
 */
function firstToUpper(str) {
  return str.trim().replace(str[0], str[0].toUpperCase());
}

/**
 * 时间格式化
 *
 * @param date
 * @param fmt 默认 YYYY-mm-dd HH:MM
 * @returns {*}
 */
function dateFormat(date, fmt) {
  let ret;
  if (!fmt) {
    fmt = 'YYYY-mm-dd HH:MM';
  }
  const opt = {
    "Y+": date.getFullYear().toString(),        // 年
    "m+": (date.getMonth() + 1).toString(),     // 月
    "d+": date.getDate().toString(),            // 日
    "H+": date.getHours().toString(),           // 时
    "M+": date.getMinutes().toString(),         // 分
    "S+": date.getSeconds().toString()          // 秒
    // 有其他格式化字符需求可以继续添加，必须转化成字符串
  };
  for (let k in opt) {
    ret = new RegExp("(" + k + ")").exec(fmt);
    if (ret) {
      fmt = fmt.replace(ret[1], (ret[1].length === 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
    }
  }
  return fmt;
}
